package com.yungu.swift.system.marketing.service;

import com.yungu.swift.base.ResponseData;
import com.yungu.swift.base.model.admin.AdminStatusParam;
import com.yungu.swift.base.service.BaseService;
import com.yungu.swift.system.marketing.model.dto.MarketingActivityDto;
import com.yungu.swift.system.marketing.model.param.AdminActivityParam;
import com.yungu.swift.system.marketing.model.param.AdminActivitySaveParam;
import com.yungu.swift.system.marketing.model.param.AdminActivitySortParam;
import com.yungu.swift.system.marketing.model.vo.AdminActivityVo;

import java.util.List;
import java.util.Map;


/**
 * Copyright © 厦门云谷互联信息有限公司 2018-2020 All Right Reserved
 * <p>
 * APP活动业务逻辑接口
 *
 * @author xiuyin.cui - Generate
 * @version 1.1.0-SNAPSHOT
 * @since 2019-04-25 13:50
 */
public interface MarketingActivityService extends BaseService<MarketingActivityDto> {

    /**
     * 后台活动列表
     *
     * @param activityParam 参数
     * @return boolean
     */
    ResponseData<AdminActivityVo> list(AdminActivityParam activityParam);

    /**
     * 新增、编辑活动
     *
     * @param activitySaveParam 参数
     * @return ResponseData
     */
    ResponseData<Boolean> saveOrUpdate(AdminActivitySaveParam activitySaveParam);

    /**
     * 设置活动的启用状态
     *
     * @param statusParam 参数
     * @return ResponseData
     */
    ResponseData<Boolean> setActive(AdminStatusParam statusParam);


    /**
     * 获取对应类型的启用活动
     *
     * @param map 参数
     * @return List
     */
    ResponseData<List<MarketingActivityDto>> getActivities(Map<String, Object> map);


    /**
     * 设置活动状态 0未开启 1开启 2关闭
     *
     * @param list 接受数组
     * @return ResponseData
     */
    ResponseData<Boolean> updateSort(List<AdminActivitySortParam> list);

    /**
     * 增加活动点击量
     *
     * @param activityUuid 活动uuid
     * @return ResponseData
     */
    ResponseData<Boolean> updateCilckCount(String activityUuid);

    /**
     * 需要预约开启的活动项
     *
     * @param appid
     * @return
     */
    ResponseData<List<MarketingActivityDto>> activityQuartz(String appid);
}